10 ! P]SK.BAC
20 ! Program av Magnus <8042> 1990
30 ! Programet {r skrivet p} en ABC806a
40 !
50 ! M|jlighet att avsluta med RETURN inf|rd <7759>
60 !
70 INTEGER : NO EXTEND : ATTRIBUTE 1
80 ; CHR$(12)
90 ; YEL DBLE TAB(10);"P]SK" : ; "" : ; ""
100 ; " Du styr en kyckling med siffertangenterna (2,4,6,8) - avslutar"
110 ; CHR$(10) ' Tryck siffertangent f|r att starta!'
120 IF SYS(5)=0 THEN 120
130 ; CHR$(12)
140 X=20 : Y=10
150 DEF FNK1(X,Y)
160 FGCTL BLK : ; CHR$(12)
170 ; CUR(Y,X);GYEL;CHR$(96);CHR$(112)
180 ; CUR(Y+1,X);GYEL;CHR$(127);GWHT;CHR$(55);GYEL;CHR$(125);GRED;CHR$(112)
190 ; CUR(Y+2,X);GYEL;CHR$(126);CHR$(127);CHR$(125)
200 ; CUR(Y+3,X-1);GYEL;CHR$(122);CHR$(127);CHR$(127);CHR$(127)
210 ; CUR(Y+4,X-1);GYEL;CHR$(43);CHR$(111);CHR$(63);CHR$(33)
220 ; CUR(Y+5,X);GRED;CHR$(96);CHR$(101)
230 RETURN 0
240 FNEND
250 DEF FNK2(X,Y)
260 FGCTL BLK : ; CHR$(12)
270 ; CUR(Y,X);GYEL;CHR$(96);CHR$(112)
280 ; CUR(Y+1,X);GYEL;CHR$(127);GWHT;CHR$(55);GYEL;CHR$(125);GRED;CHR$(112)
290 ; CUR(Y+2,X);GYEL;CHR$(126);CHR$(127);CHR$(125)
300 ; CUR(Y+3,X-1);GYEL;CHR$(122);CHR$(127);CHR$(127);CHR$(127)
310 ; CUR(Y+4,X-1);GYEL;CHR$(43);CHR$(111);CHR$(63);CHR$(33)
320 ; CUR(Y+5,X-1);GRED;CHR$(96);CHR$(118);CHR$(121);CHR$(48)
330 RETURN 0
340 FNEND
350 DEF FNN1(X,Y)
360 FGCTL BLK : ; CHR$(12)
370 ; CUR(Y,X);GYEL;CHR$(96);CHR$(112);CHR$(48)
380 ; CUR(Y+1,X);GWHT;CHR$(55);RED NWBG GYEL;CHR$(47);BLBG GWHT;CHR$(107)
390 ; CUR(Y+2,X);GYEL;CHR$(126);CHR$(127);CHR$(125)
400 ; CUR(Y+3,X-1);GYEL;CHR$(104);CHR$(127);CHR$(127);CHR$(127);CHR$(52)
410 ; CUR(Y+4,X-1);GYEL;CHR$(34);CHR$(127);CHR$(47);CHR$(127);CHR$(33)
420 ; CUR(Y+5,X);GRED;CHR$(58);CHR$(112);CHR$(101)
430 RETURN 0
440 FNEND
450 DEF FNN2(X,Y)
460 FGCTL BLK : ; CHR$(12)
470 ; CUR(Y,X);GYEL;CHR$(96);CHR$(112);CHR$(48)
480 ; CUR(Y+1,X);GWHT;CHR$(55);RED NWBG GYEL;CHR$(47);BLBG GWHT;CHR$(107)
490 ; CUR(Y+2,X);GYEL;CHR$(126);CHR$(127);CHR$(125)
500 ; CUR(Y+3,X-1);GYEL;CHR$(104);CHR$(127);CHR$(127);CHR$(127);CHR$(52)
510 ; CUR(Y+4,X-1);GYEL;CHR$(34);CHR$(127);CHR$(47);CHR$(127);CHR$(33)
520 ; CUR(Y+5,X);GRED;CHR$(38);CHR$(100);CHR$(101)
530 RETURN 0
540 FNEND
550 DEF FNN3(X,Y)
560 FGCTL BLK : ; CHR$(12)
570 ; CUR(Y,X);GYEL;CHR$(96);CHR$(112);CHR$(48)
580 ; CUR(Y+1,X);GWHT;CHR$(55);RED NWBG GYEL;CHR$(47);BLBG GWHT;CHR$(107)
590 ; CUR(Y+2,X);GYEL;CHR$(126);CHR$(127);CHR$(125)
600 ; CUR(Y+3,X-1);GYEL;CHR$(104);CHR$(127);CHR$(127);CHR$(127);CHR$(52)
610 ; CUR(Y+4,X-1);GYEL;CHR$(34);CHR$(127);CHR$(47);CHR$(127);CHR$(33)
620 ; CUR(Y+5,X);GRED;CHR$(58);CHR$(56);CHR$(41)
630 RETURN 0
640 FNEND
650 DEF FNV1(X,Y)
660 FGCTL BLK : ; CHR$(12)
670 ; CUR(Y,X+1);GYEL;CHR$(112);CHR$(48)
680 ; CUR(Y+1,X-1);GRED;CHR$(112);GYEL;CHR$(126);GWHT;CHR$(107);GYEL;CHR$(127)
690 ; CUR(Y+2,X);GYEL;CHR$(126);CHR$(127);CHR$(125)
700 ; CUR(Y+3,X);GYEL;CHR$(127);CHR$(127);CHR$(127);CHR$(117)
710 ; CUR(Y+4,X);GYEL;CHR$(34);CHR$(111);CHR$(63);CHR$(39)
720 ; CUR(Y+5,X+1);GRED;CHR$(58);CHR$(48)
730 RETURN 0
740 FNEND
750 DEF FNV2(X,Y)
760 FGCTL BLK : ; CHR$(12)
770 ; CUR(Y,X+1);GYEL;CHR$(112);CHR$(48)
780 ; CUR(Y+1,X-1);GRED;CHR$(112);GYEL;CHR$(126);GWHT;CHR$(107);GYEL;CHR$(127)
790 ; CUR(Y+2,X);GYEL;CHR$(126);CHR$(127);CHR$(125)
800 ; CUR(Y+3,X);GYEL;CHR$(127);CHR$(127);CHR$(127);CHR$(117)
810 ; CUR(Y+4,X);GYEL;CHR$(34);CHR$(111);CHR$(63);CHR$(39)
820 ; CUR(Y+5,X);GRED;CHR$(96);CHR$(118);CHR$(121);CHR$(48)
830 RETURN 0
840 FNEND
850 DEF FNU1(X,Y)
860 FGCTL BLK : ; CHR$(12)
870 ; CUR(Y,X);GYEL;CHR$(96);CHR$(112);CHR$(48)
880 ; CUR(Y+1,X);GYEL;CHR$(127);CHR$(127);CHR$(127)
890 ; CUR(Y+2,X);GYEL;CHR$(126);CHR$(127);CHR$(125)
900 ; CUR(Y+3,X-1);GYEL;CHR$(104);CHR$(127);CHR$(127);CHR$(127);CHR$(52)
910 ; CUR(Y+4,X-1);GYEL;CHR$(34);CHR$(127);CHR$(47);CHR$(127);CHR$(33)
920 ; CUR(Y+5,X);GRED;CHR$(58);CHR$(112);CHR$(101)
930 RETURN 0
940 FNEND
950 DEF FNU2(X,Y)
960 FGCTL BLK : ; CHR$(12)
970 ; CUR(Y,X);GYEL;CHR$(96);CHR$(112);CHR$(48)
980 ; CUR(Y+1,X);GYEL;CHR$(127);CHR$(127);CHR$(127)
990 ; CUR(Y+2,X);GYEL;CHR$(126);CHR$(127);CHR$(125)
1000 ; CUR(Y+3,X-1);GYEL;CHR$(104);CHR$(127);CHR$(127);CHR$(127);CHR$(52)
1010 ; CUR(Y+4,X-1);GYEL;CHR$(34);CHR$(127);CHR$(47);CHR$(127);CHR$(33)
1020 ; CUR(Y+5,X);GRED;CHR$(38);CHR$(100);CHR$(101)
1030 RETURN 0
1040 FNEND
1050 DEF FNU3(X,Y)
1060 FGCTL BLK : ; CHR$(12)
1070 ; CUR(Y,X);GYEL;CHR$(96);CHR$(112);CHR$(48)
1080 ; CUR(Y+1,X);GYEL;CHR$(127);CHR$(127);CHR$(127)
1090 ; CUR(Y+2,X);GYEL;CHR$(126);CHR$(127);CHR$(125)
1100 ; CUR(Y+3,X-1);GYEL;CHR$(104);CHR$(127);CHR$(127);CHR$(127);CHR$(52)
1110 ; CUR(Y+4,X-1);GYEL;CHR$(34);CHR$(127);CHR$(47);CHR$(127);CHR$(33)
1120 ; CUR(Y+5,X);GRED;CHR$(58);CHR$(56);CHR$(41)
1130 RETURN 0
1140 FNEND
1150 IF SYS(5)=0 THEN 1150
1160 OUT 34,9
1170 GET A$
1180 IF A$="4" THEN GOSUB 1240
1190 IF A$="6" THEN GOSUB 1280
1200 IF A$="8" THEN GOSUB 1320
1210 IF A$="2" THEN GOSUB 1380
1220 IF A$=CHR$(13) 1440
1230 GOTO 1150
1240 ! ----- V[NSTER --------
1250 X=X-1 : IF X<1 THEN X=1
1260 IF V=0 THEN V=1 : Z=FNV1(X,Y) : RETURN
1270 IF V=1 THEN V=0 : Z=FNV2(X,Y) : RETURN
1280 ! ------- H\GER -----------
1290 X=X+1 : IF X>75 THEN X=75
1300 IF H=0 THEN H=1 : Z=FNK1(X,Y) : RETURN
1310 IF H=1 THEN H=0 : Z=FNK2(X,Y) : RETURN
1320 ! ------- UPP -----------
1330 Y=Y-1 : IF Y<1 THEN Y=1
1340 IF U=0 THEN U=1 : Z=FNU1(X,Y) : RETURN
1350 IF U=1 THEN U=2 : Z=FNU2(X,Y) : RETURN
1360 IF U=2 THEN U=3 : Z=FNU1(X,Y) : RETURN
1370 IF U=3 THEN U=0 : Z=FNU3(X,Y) : RETURN
1380 ! -------- NER ----------
1390 Y=Y+1 : IF Y>17 THEN Y=17
1400 IF N=0 THEN N=1 : Z=FNN1(X,Y) : RETURN
1410 IF N=1 THEN N=2 : Z=FNN2(X,Y) : RETURN
1420 IF N=2 THEN N=3 : Z=FNN1(X,Y) : RETURN
1430 IF N=3 THEN N=0 : Z=FNN3(X,Y) : RETURN
1440 END